namespace RBAC.Read.Api.Application.Command.QualityCommand
{
    using MediatR;
    using RBAC.ErrorCode;
    using RBAC.Read.Api.Application.Dto.Quality;

    /// <summary>
    /// 质量工单分页查询命令（无筛选条件，按 Id DESC 排序）。
    /// </summary>
    /// <remarks>
    /// 处理器会调用仓储分页接口，默认仅返回未删除数据，并按照 <see cref="OrderBy"/> 排序（默认 "Id DESC"）。
    /// 
    /// 校验建议：
    /// - <see cref="PageIndex"/> 最小为 1。
    /// - <see cref="PageSize"/> 建议限制在合理范围（如 10~200）。
    /// - <see cref="OrderBy"/> 建议在处理器层进行白名单校验，避免 SQL 注入。
    /// 
    /// 调用示例（HTTP）：
    /// GET api/QualityOrder/GetQualityOrderList?pageIndex=1&pageSize=10&orderBy=Id%20DESC
    /// </remarks>
    /// </summary>
    public class GetQualityOrderListCommand : IRequest<APIPaging<QualityOrderListItemDto>>
    {
        /// <summary>
        /// 页码（从 1 开始）。
        /// </summary>
        public int PageIndex { get; set; } = 1;

        /// <summary>
        /// 页大小（建议 10~200）。
        /// </summary>
        public int PageSize { get; set; } = 10;

        /// <summary>
        /// 排序字段与方向，默认按 Id 倒序（示例："Id DESC"）。
        /// </summary>
        public string OrderBy { get; set; } = "Id DESC";
    }
}
